minix3fandomcom_mn-20200213-history
VFS-FS хөтлөлт(15-20);
Жамсрансүрэн-пх3а 08:53, Арванхоёрдугаар сар 21, 2010 (UTC) тайлбар • Энэ дуудалт нь олон оролтуудыг хадгалах ёстой төдийгүй, өгсөн хайх байрлалаас ялгагдсан оролтуудаас эхлэн тодорхой buffer-луу зохимжтой хийж чадна. Хайх байрлал түүнчлэн шинэ байх хэрэгтэй. Хэрвээ өгсөн байрлал заагч сүүлийн оролтын нөгөө талд байвал, хоосон оролтуудыг амжилттай буцаасан байх ёстой ба байрлал хэтэрхий хол байх ёсгүй. тэмдэглэлүүд • Ямар нэг байрлалын дүрс загварууд нь бүхэлдээ FS-рүү орно. Энэ нь зөвхөн дүрслэн үзүүлэх тоолуур бөгөөд оруулахын тулд аль нэгэн сонголтонд ENOENT хэзээ ч байх байхгүй юм. Түр зуурын хайлтууд руу зэрэгцүүлэгдээгүй байрлалуудыг зөвшөөрөөгүй , хайлтыг directory-ийн нөгөө төгсгөлд төгсгөх EOF-ийг авсан байх хэрэгтэй. • Хадгалагдсан тэмдэглэл бүрийн төрөл "struct dirent" нь хоосон-төгсгөлөөр залгагдсан. directory-ийн тэмдэглэлийн нэр болон онцгой олон үг рүү залгаж хийх "struct dirent" бол уртаараа зэрэгцүүлэгдсэн. • Dirent бүр d_off the (file system-ийн онцлог) тэр оролтуудын байрлал , мөн d_reclen "struct dirent" нэр болон доторх тэмдэглэлийг багтааж буцаасан нийт хэмжээг төлөөлнө. • Open Group холбоос (closest match): readdir • POSIX notes: амжилттай болох, шинэчлэгдсэн directory-ийн ATIME. ________________________________________ REQ_FTRUNC Нээлттэй файлын хэмжээг тохируулах , эсвэл чөлөөт зай,. Хэрэгцээт талбарууд REQ_FD_INODE_NR m2_i1 ino_t inode дугаар REQ_FD_START m2_i2 off_t шинэ file-ийн хэмжээ эсвэл эхлэл байрлалын чөлөөт муж (оруулсан) REQ_FD_END m2_i3 off_t Хоосон төгсгөлийн чөлөөт мужийн байрлал (оруулахгїй) Буцаах талбарууд • none буцах codes EINVAL оролдлого бол ямар нэгэн дамжуулах хоолойн file-ийн хэмжээг өөрчлөхийн тулд хийнэ гэвч хоосон EFBIG file маш том болох болно OK File-ийн хэмжээ өөрчлөгдлөө and/or нүх үүссэн Тайлбар Энэ гүйцэтгэлийн ач холбогдол нь бол REQ_FD_END талбар хоосон эсвэл огт үгүй эсэхээс хамаарна.хэрвээ энэ талбар хоосон байвал өгсөн file эмхлэгдсэн байх ба хасагдсан ба нэмэгдсэн(өргөтгөгдсөн) file-ийг REQ_FD_START-д дамжуулсан байна. Өргөтгөх арга зам бол file-д онгорхой цоорхой байвал 0 үүдээр дүүргэх юм.Хэрвээ REQ_FD_END нь ямар ч 0 байхгүй бол REQ_FD_START-аас REQ_FD_END рүү очно. File server-үүд нь өгсөн мужид file-ийн цоорхойгүй 0-ээр дүүрсэн байх яг ижил үр дүнг зочинд бэлтгэж өгөх хэрэгтэй.аль нэгэн сонголтонд file-ийн хэмжээг өөрчлөх ёсгүй. Тэмдэглэгээ • VFS бол зөвхөн file болон file дамжуулах хэсэгт хасалтыг хийдэг бөгөөд зай чөлөөлөх нь мөн адил энэ хэсэгт хийнэ. • VFS батламж нь REQ_FD_END нь хэрвээ 0 биш бол REQ_FD_START-аас арай илүү том юм. • Дамжуулах хоолойн үндсэн хэмжээ нь хасагдсан үнэн хэрэгтэй хоосон биш юм. • Мужуудын чөлөөт зай нь тодорхой хил хязгаарт зэрэгцүүлэгдээгүй .block –д чиглүүлэгдсэн file систем file-ийн цоорхойг хадгалж,file server тогтвортой байх эсэх нь эхний болон сүүлийн block-ийн хоосон хэсэг нь block-ийн бүрхүүл муж байх юм.Энэ нь бичих хүсэлт read only file system рүү илгээхгүй. • Нээлттэй group-ийн холбоос:ftruncate, truncate • POSIX notes: амжилтанд CTIME and MTIME-ийн шинэчлэлт бас pipe-ийн хасалтанд pipe's ATIME update хийсэнбайна. REQ_INHIBREAD Хайх операторын file-ийг тэмдэглэнэ. Гүйцэтгэх талбарууд REQ_INODE_NR m6_l1 ino_t inode дугаар Буцах талбар • Юу ч үгүй буцах кодууд OK гүйцэтгэх процесс амжилттай гүйцэтгэгдлээ. Тайлбар Энэ үйлдэл нь file system-ийг унших үйл явцыг тодолхойлоход туслах юм.Дараа нь хайлт file server эхэлж эрчимтэйгээр унших хэсгийг сонгохгүй дараагийнхыг нь дуудаж уншина.яагаад гэвэл өөр нэг хайлтыг дагаж application-уудыг хайлт-унших-хайлт хэв маягаар цааш явна.дараагийнхыг дуудаж түрүүлж уншсаны дараа ахин унших боломжтой. Note:энэ схемийн төлөөлөл нь file нэг бүрийг зөвхөн нэг удаа хэсэг хугацаанд унших юм. Өгөгдлийн толь бичгийг засах болон нарийн төвөгтэй арга REQ_STAT File статусыг сэргээх Гүйцэтгэх талбар: REQ_INODE_NR m6_l1 ino_t inode number REQ_GRANT m6_l3 cp_grant_id_t Санах ойд (WRITE) to үр дүн хадгалах "struct stat" Буцах талбар • Юу ч үгүй буцах кодууд ok үр дүнг буферт хадгалсан Тайлбар file server нь "struct stat"-аар гүйцэтгэсэн өгсөн file-н төлвүүдийн тухай бүтцийг мөн гадагш хэрэглэх үед хуулахыг дэмжих юм. Notes • st_dev талбар бүтцийн хэрэгтэй хувьсагчид ith the initial REQ_READSUPER_S саналтай бол . • Нээлттэй group-ийн холбоос: fstat, stat ________________________________________ REQ_CHOWN File-ийн эзэмших эрхийг солих . Request fields REQ_INODE_NR m6_l1 ino_t inode дугаар REQ_UID m6_s1 uid_t Хэрэглэгчийн эзний ID REQ_GID m6_c1 gid_t Group-ийн эзний GID REQ_NEW_UID m6_s3 uid_t шинэ хэрэглэгчийн эзний file ID REQ_NEW_GID m6_c2 gid_t new group-ийн эзний file ID Буцах талбарууд RES_MODE m6_s1 mode_t Амжилттай болох : inode mode үр дүн Буцах кодууд Эзэмших эрх солигдлоо. ТАЙЛБАР Өгсөн file –ийг эзэмших эрхийг солихд шинэ хэрэглэгчийн эзний id,групын id үүснэ. тэмдэглэгээ • хэрэглэгчийн UID болон GID нь ердийн үедээ ашиглагдаагүй байдаг. • Энэ бол бичих хүсэлт бөгөөд read-only file систем рүү илгээхийг хүсэхгүй. • Нээлттэй links: fchown, chown • POSIX тэмдэглэгээнүүд: the CTIME-ийн file сэргээгдсэн. ________________________________________ REQ_CHMOD File-ийн mode-ийг солих. Request талбарууд REQ_INODE_NR m6_l1 ino_t inode дугаар REQ_MODE m6_s3 mode_t File-ийн шинэ mode REQ_UID m6_s1 uid_t Хэрэглэгчийн эзний ID REQ_GID m6_c1 gid_t Group-ийн эзний GID Reply fields RES_MODE m6_s1 mode_t Амжилттай болох: inode шинж үр дүн Буцах код OK mode өөрчлөгдлөө. Тайлбар • Энэ өөрчлөх боломжийг зөвшөөрөх хэсгийн төрөл the access permissions part ( төрөлгүй хэсэг) of the mode of the тодорхойлсон inode. Үр дүн болох төрөл нь VFS рүү буцаж очих юм.. Notes • The caller UID and GID are typically unused. • While MFS changes the 06777 (octal) part of the mode, other file systems may choose to change S_ISVTX as well (07777). • This is a write request, and will not be sent to read-only file systems. • Open Group links: fchmod, chmod • POSIX notes: the CTIME of the file is updated. ________________________________________ REQ_UTIME Set file times. Request fields REQ_INODE_NR m6_l1 ino_t inode дугаар REQ_ACTIME m6_l2 time_t шинэ access time REQ_MODTIME m6_l3 time_t шинэ modification time Reply fields • none Reply codes OK custom file times set Тайлбар • The purpose of this request is to set a custom access time (ATIME) and modification time (MTIME) on a file. Тэтдэглэгээ • This is a write request, and will not be sent to read-only file systems. • Open Group link: utime • POSIX notes: the CTIME of the file is also updated. ________________________________________ Directory entry manipulation REQ_MKDIR_S Create a directory. Request fields REQ_INODE_NR m6_l1 ino_t inode number of the containing directory for the new file REQ_MODE m6_s3 mode_t mode for the directory REQ_UID m6_s1 uid_t Хэрэглэгчийн директор id REQ_GID m6_c1 gid_t Групын директор id REQ_GRANT m6_l3 cp_grant_id_t Сүүлчийн бүрэлдэхүүн хэсгийн санах ойгоос унших grant (READ) REQ_PATH_LEN m6_s2 unsigned short Сүүлчийн бүрэлдэхүүн хэсгийн урт